package com.wpf.system.service;

import com.wpf.system.entity.FieldBook;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wpf.system.entity.dto.BookRentBuySearchDTO;
import com.wpf.system.entity.vo.FieldBookVO;

import java.util.HashMap;
import java.util.List;

/**
* @author ferna
* @description 针对表【field_book(场地预约情况表)】的数据库操作Service
* @createDate 2023-01-30 11:10:10
*/
public interface FieldBookService extends IService<FieldBook> {

    /**
     * 查询某天某父级及其子级场馆的预约情况
     * @param fids 场馆id
     * @param bookDate 预约进场时间
     * @return 预约情况
     */
    List<FieldBook> getFieldBookByDate(List<Long> fids,String bookDate);

    /**
     * 检查用户选择的场馆是否还可以预约
     * @param fid 场馆id
     * @param tid 时间段id
     * @param bookDate 预约时间
     * @return
     */
    Boolean checkFieldCanBook(Long fid,Long tid,String bookDate);

    /**
     * 根据id查询预约记录
     * @param ids id集合
     * @return 预约记录
     */
    List<FieldBook> getFieldBookById(List<Long> ids);

    /**
     * 批量物理删除预约记录
     * @param ids 删除的预约记录id集
     * @return 是否删除成功
     */
    int deleteFieldByIds(List<Long> ids);

    /**
     * 根据条件查看预约情况
     */
    List<FieldBookVO> getAllFieldBook(BookRentBuySearchDTO bookRentBuySearchDTO);

    /**
     * 获取七天内每天已进场人数及预约人数
     * @param id 场馆id
     * @param date 选中最后的日期
     * @return 特定格式的对象
     */
    HashMap<String,Object> getFieldBookChart(Long id,String date);
}
